Natural language processing (NLP) is a field of computer science and linguistics concerned with the interactions 
between computers and human (natural) languages. 
In theory, natural language processing is a very attractive method of human-computer interaction.
Natural language understanding is sometimes referred to as an AI-complete problem because it seems to require 
extensive knowledge about the outside world and the ability to manipulate it.
NLP has significant overlap with the field of computational linguistics, and is often considered a sub-field of 
artificial intelligence.
Modern NLP algorithms are grounded in machine learning, especially statistical machine learning.  Research into 
modern statistical NLP algorithms requires an understanding of a number of disparate fields, including linguistics, 
computer science, and statistics.
